home *** CD-ROM | disk | FTP | other *** search
/ ftp.hitl.washington.edu / ftp.hitl.washington.edu.tar / ftp.hitl.washington.edu / pub / people / tsoper / CT Explorer / TrackingSystem.cs < prev    next >
Text File  |  2005-05-23  |  7KB  |  263 lines

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6.  
  7. namespace PCIBird
  8. {
  9.     /// <summary>
  10.     /// Summary description for Board.
  11.     /// </summary>
  12.     public class TrackingSystem
  13.     {
  14.         //instantiate parameters
  15.         public SelectXmtrParameter SelectXmtr;
  16.         public LineFrequencyParameter LineFrequency;
  17.         public AGCModeParameter AGCMode;
  18.         public MeasurementRateParameter MeasurementRate;
  19.         public MaximumRangeParameter MaximumRange;
  20.         public MetricParameter    Metric;
  21.  
  22.         //TAKE THIS OUT
  23.         public RichTextBox rtb = new RichTextBox();
  24.         public System.Windows.Forms.Form trackingForm;
  25.  
  26.         //create the system components
  27.         public Sensor [] sensor;
  28.         private int numberSensorsAttached; 
  29.         public Board board;
  30.         public Xmtr xmtr;
  31.  
  32.  
  33.         public PCIBirdWrapper pciBird;
  34.  
  35.         public TrackingSystem()
  36.         {
  37.             pciBird = new PCIBirdWrapper();
  38.  
  39.             SelectXmtr = new SelectXmtrParameter(pciBird);
  40.             LineFrequency = new LineFrequencyParameter(pciBird);
  41.             AGCMode = new AGCModeParameter(pciBird);
  42.             MeasurementRate = new MeasurementRateParameter(pciBird);
  43.             MaximumRange = new MaximumRangeParameter(pciBird);
  44.             Metric = new MetricParameter(pciBird);    
  45.         }
  46.         
  47.         public void Initialize()
  48.         {
  49.             //initialize the system
  50.             pciBird.InitializeSystem();
  51.  
  52.             //get system configuration
  53.             SystemConfig systemConfig = this.GetSystemConfig();
  54.             
  55.             //create board
  56.             board = new Board(0,pciBird);
  57.             
  58.             //create transmitter
  59.             xmtr = new Xmtr(0,pciBird);
  60.  
  61.             //create array of sensors
  62.             numberSensorsAttached = 0; //number of attached sensors
  63.             for(int i = 0; i < pciBird.GetSystemConfig().numberSensors; i++)
  64.                 numberSensorsAttached += pciBird.GetSensorConfig((ushort)i).attached;
  65.  
  66.             sensor = new Sensor[numberSensorsAttached];
  67.             int attachedIdx = 0;
  68.             for(int i = 0; i < pciBird.GetSystemConfig().numberSensors; i++)
  69.             {
  70.                 if(pciBird.GetSensorConfig((ushort)i).attached.Equals(1))
  71.                 {
  72.                     sensor[attachedIdx] = new Sensor((ushort)i,pciBird);
  73.                     attachedIdx++;
  74.                 }
  75.             }
  76.  
  77.             //select the transmitter
  78.             this.SelectXmtr.Set(0);
  79.  
  80.         }
  81.         public void Shutdown()
  82.         {
  83.             pciBird.ShutdownSystem();
  84.         }
  85.         public SystemConfig GetSystemConfig()
  86.         {
  87.             return pciBird.GetSystemConfig();
  88.         }
  89.  
  90.         public int GetNumberSensorsAttached()
  91.         {
  92.             return numberSensorsAttached;
  93.         }
  94.  
  95.         public void PrintSystemConfig(RichTextBox rtb)
  96.         {
  97.             SystemConfig sc = GetSystemConfig();
  98.  
  99.             string configStr =    "\n\nSYSTEM CONFIGURATION:\n" +
  100.                 "Measurment Rate:        "    + sc.measurementRate + "\n" +
  101.                 "Power Line Frequency:    "    + sc.powerLineFrequency + "\n" +
  102.                 "Maximum Range:        " + sc.maximumRange + "\n" +
  103.                 "AGC Mode:        " + sc.agcMode + "\n" +
  104.                 "Number Boards:        "    + sc.numberBoards + "\n" +
  105.                 "Number Sensors:        "    + sc.numberSensors + "\n" +
  106.                 "Number Transmitters:    "    + sc.numberTransmitters + "\n" +
  107.                 "Transmitter ID Running:    "    + sc.transmitterIDRunning;
  108.             
  109.             rtb.AppendText(configStr);
  110.         }
  111.  
  112.         public void PrintSystemParameters( RichTextBox rtb )
  113.         {
  114.             string paramStr = "\n\nSYSTEM  PARAMETERS\n" +
  115.                         "Select Transmitter:        " + this.SelectXmtr.Get() + "\n" +
  116.                         "Line Frequency:        " + this.LineFrequency.Get() + "\n" +
  117.                         "AGC Mode:        " + this.AGCMode.Get() + "\n" + 
  118.                         "Measurment Rate:        " + this.MeasurementRate.Get() + "\n" +
  119.                         "Maximum Range:        " + this.MaximumRange.Get() + "\n" +
  120.                         "Metric:            " + this.Metric.Get() + "\n";
  121.  
  122.             rtb.AppendText(paramStr);
  123.  
  124.         }
  125.  
  126.         /************************ PARAMETER CLASSES ***********************************/
  127.         public class SelectXmtrParameter
  128.         {
  129.             PCIBirdWrapper pciBird;
  130.  
  131.             public SelectXmtrParameter( PCIBirdWrapper pciBirdWrapper)
  132.             {
  133.                 pciBird = pciBirdWrapper;
  134.             }
  135.  
  136.             public short Get()
  137.             {
  138.                 object o = new short();
  139.                 pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.SELECT_TRANSMITTER,o,2);
  140.                 return Convert.ToInt16(o);
  141.             }
  142.  
  143.             public void Set(short xmtrId)
  144.             {
  145.                 pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.SELECT_TRANSMITTER,xmtrId,2);
  146.                 return;
  147.             }
  148.         }
  149.  
  150.         public class LineFrequencyParameter
  151.         {
  152.             PCIBirdWrapper pciBird;
  153.  
  154.             public LineFrequencyParameter(PCIBirdWrapper pciBirdWrapper)
  155.             {
  156.                 pciBird = pciBirdWrapper;
  157.             }
  158.  
  159.             public double Get()
  160.             {
  161.                 object o = new double();
  162.                 pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.POWER_LINE_FREQUENCY,o,8);
  163.                 return Convert.ToDouble(o);
  164.             }
  165.             public void Set(double lf)
  166.             {
  167.                 pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.POWER_LINE_FREQUENCY,lf,8);
  168.                 return;
  169.             }
  170.         }
  171.  
  172.         public class AGCModeParameter
  173.         {
  174.             PCIBirdWrapper pciBird;
  175.  
  176.             public AGCModeParameter(PCIBirdWrapper pciBirdWrapper)
  177.             {
  178.                 pciBird = pciBirdWrapper;
  179.             }
  180.  
  181.             public AGC_MODE_TYPE Get()
  182.             {    
  183.                 object o = new int();
  184.                 pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.AGC_MODE,o,4);
  185.                 return (AGC_MODE_TYPE)Convert.ToInt32(o);
  186.             }
  187.             public void Set(AGC_MODE_TYPE agc )
  188.             {    
  189.                 pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.AGC_MODE,(int)agc,4);
  190.                 return;
  191.             }
  192.         }
  193.  
  194.         public class MeasurementRateParameter
  195.         {
  196.             PCIBirdWrapper pciBird;
  197.  
  198.             public MeasurementRateParameter(PCIBirdWrapper pciBirdWrapper)
  199.             {
  200.                 pciBird = pciBirdWrapper;
  201.             }
  202.  
  203.             public double Get()
  204.             {
  205.                 object o  = new double();
  206.                 pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.MEASUREMENT_RATE,o,8);
  207.                 return Convert.ToDouble(o);
  208.             }
  209.             public void Set(double mr)
  210.             {
  211.                 pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.MEASUREMENT_RATE,mr,8);
  212.                 return;
  213.             }
  214.         }
  215.  
  216.         public class MaximumRangeParameter
  217.         {
  218.             PCIBirdWrapper pciBird;
  219.  
  220.             public MaximumRangeParameter(PCIBirdWrapper pciBirdWrapper)
  221.             {
  222.                 pciBird = pciBirdWrapper;
  223.             }
  224.  
  225.             public double Get()
  226.             {
  227.                 object o = new double();
  228.                 pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.MAXIMUM_RANGE,o,8);
  229.                 return Convert.ToDouble(o);
  230.             }
  231.             public void Set(double mr)
  232.             {
  233.                 pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.MAXIMUM_RANGE,mr,8);
  234.                 return;
  235.             }
  236.         }
  237.  
  238.         public class MetricParameter
  239.         {
  240.             PCIBirdWrapper pciBird;
  241.  
  242.             public MetricParameter(PCIBirdWrapper pciBirdWrapper)
  243.             {
  244.                 pciBird = pciBirdWrapper;
  245.             }
  246.  
  247.             public bool Get()
  248.             {
  249.                 object o = new int();
  250.                 pciBird.GetSystemParam(SYSTEM_PARAMETER_TYPE.METRIC,o,4);
  251.                 return Convert.ToBoolean(o);
  252.             }
  253.             public void Set(bool torf)
  254.             {
  255.                 int metric = torf.CompareTo(false);
  256.                 pciBird.SetSystemParam(SYSTEM_PARAMETER_TYPE.METRIC,metric,4);
  257.                 return;
  258.             }
  259.         }
  260.  
  261.  
  262.     }
  263. }